package entities;

import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="klassen")
@NamedQuery(name="alleKlassen", query="SELECT k FROM Klasse k")
public class Klasse 
{
	@Id
	private String bezeichnung;
	
	private String klassenvorstand;
	
	@OneToMany(mappedBy="klasse", cascade = {CascadeType.PERSIST, CascadeType.REFRESH})
	private List<Schueler> schuelerListe = new ArrayList<>();
	
	@ManyToMany(mappedBy="klassen")
	private List<Lehrer> leherliste = new ArrayList<>();
	
	
	public void add(Schueler s)
	{
		schuelerListe.add(s);
		s.setKlasse(this);
	}

	public String getBezeichnung()
	{
		return bezeichnung;
	}

	public void setBezeichnung(String bezeichnung)
	{
		this.bezeichnung = bezeichnung;
	}

	public String getKlassenvorstand()
	{
		return klassenvorstand;
	}

	public void setKlassenvorstand(String klassenvorstand)
	{
		this.klassenvorstand = klassenvorstand;
	}

	public List<Schueler> getSchuelerListe()
	{
		return schuelerListe;
	}

	public List<Lehrer> getLeherliste()
	{
		return leherliste;
	}
	
	@Override
	public String toString()
	{
		return bezeichnung;
	}

}
